﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Comun;
namespace DalcProFacu
{
    public class HistoriaClinica
    {
        Conexion conn = null;

        public HistoriaClinica(Conexion con)
        {
            conn = con;
        }

        public DataSet GetHistorial(string sNumDoc)
        {
            StringBuilder sSql = new StringBuilder();

            DataSet Dt;

            sSql.Append(" SELECT HC.IDHISTORIACLINICA, D.IDPROFESIONAL, P.NOMBRE + ' ' + P.APELLIDO PROFESIONAL, ");
            sSql.Append(" PR.NROMATRICULA,E.DESCRIPCION ESPECIALIDAD , D.DESCRIPCION, PC.NRODOC ");
            sSql.Append(" FROM SAHC_HISTORIACLINICA HC ");
            sSql.Append(" INNER JOIN SAHC_DIAGNOSTICO D ON D.IDHCLINICA = HC.IDHISTORIACLINICA ");
            sSql.Append(" INNER JOIN SAHC_PROFESIONAL PR ON PR.IDPROFESIONAL = D.IDPROFESIONAL ");
            sSql.Append(" INNER JOIN SAHC_PERSONAL P ON P.IDPERSONA = PR.IDPERSONAL ");
            sSql.Append(" INNER JOIN SAHC_ESPECIALIDAD E ON E.IDESPECIALIDAD = PR.IDESPECIALIDAD ");
            sSql.Append(" INNER JOIN SAHC_PACIENTE PC ON PC.IDPACIENTE = HC.IDPACIENTE ");
            sSql.Append(string.Format(" WHERE PC.NRODOC = '{0}' ", sNumDoc));

            Dt = conn.EjecutarQuery(sSql.ToString(), "HCI");

            //this.Errores = conn.Errores;
            return Dt;
        }

        public DataSet GetDetalle(string sDiag)
        {
            StringBuilder sSql = new StringBuilder();

            DataSet Dt;

            sSql.Append(" SELECT P.NOMBRE, P.APELLIDO, ");
            sSql.Append(" E.DESCRIPCION ESPECIALIDAD , D.DESCRIPCION ");
            sSql.Append(" FROM SAHC_DIAGNOSTICO D ");
            sSql.Append(" INNER JOIN SAHC_PROFESIONAL PR ON PR.IDPROFESIONAL = D.IDPROFESIONAL ");
            sSql.Append(" INNER JOIN SAHC_PERSONAL P ON P.IDPERSONA = PR.IDPERSONAL ");
            sSql.Append(" INNER JOIN SAHC_ESPECIALIDAD E ON E.IDESPECIALIDAD = PR.IDESPECIALIDAD ");
            sSql.Append(string.Format(" WHERE D.IDDIAGNOSTICO = '{0}' ", sDiag));

            Dt = conn.EjecutarQuery(sSql.ToString(), "DETALLEHC");

            //this.Errores = conn.Errores;
            return Dt;
        }

        public DataSet GetEstudios(string sHistorial)
        {
            StringBuilder sSql = new StringBuilder();

            DataSet Dt;

            sSql.Append(" SELECT E.*, P.APELLIDO + ' ' + P.NOMBRE PROF, PR.NROMATRICULA, ");
            sSql.Append(" OB.DESCRIPCION OBRAS, TE.NOMBREESTUDIO, ES.DESCRIPCION ESPECIALIDAD ");
            sSql.Append(" FROM SAHC_ESTUDIO E ");
            sSql.Append(" INNER JOIN SAHC_PROFESIONAL PR ON PR.IDPROFESIONAL = E.IDPROFESIONAL ");
            sSql.Append(" INNER JOIN SAHC_PERSONAL P ON P.IDPERSONA = PR.IDPERSONAL ");
            sSql.Append(" INNER JOIN SAHC_OBRASOCIAL OB ON OB.IDOBRASOCIAL = E.IDOBRASOCIAL ");
            sSql.Append(" INNER JOIN SAHC_TIPOESTUDIO TE ON TE.IDTIPOESTUDIO = E.IDTIPOESTUDIO ");
            sSql.Append(" INNER JOIN SAHC_ESPECIALIDAD ES ON ES.IDESPECIALIDAD = E.IDESPECIALIDAD ");
            sSql.Append(string.Format(" WHERE E.IDHCLINICA = '{0}' ", sHistorial));

            Dt = conn.EjecutarQuery(sSql.ToString(), "ESTUDIOS");

            //this.Errores = conn.Errores;
            return Dt;
        }

        public int NuevoDiagnostico(string sHisto, string sProf, string sEspe, string sTexto)
        {
            StringBuilder sSql = new StringBuilder();

            int nuevo;

            sSql.Append(" SELECT TOP 1 IDDIAGNOSTICO + 1 ID FROM SAHC_DIAGNOSTICO ");
            sSql.Append(" ORDER BY IDDIAGNOSTICO DESC ");

            DataSet Dt = conn.EjecutarQuery(sSql.ToString(), "ID");

            sSql.Append(" INSERT INTO SAHC_DIAGNOSTICO VALUES ( ");
            sSql.Append(string.Format(" {0} ,{1} ,{2} , '{3}') ",Dt.Tables["ID"].Rows[0]["ID"].ToString(), sHisto, sProf, sTexto ));

            nuevo = conn.EjecutarQuery(sSql.ToString());

            //this.Errores = conn.Errores;
            return nuevo;
        }

        //FUNCIONALIDAD NUEVA, NO AGREGADA.
        public int NuevoEstudio(string sHisto, string sProf, string sEspe, string sTexto)
        {
            //StringBuilder sSql = new StringBuilder();

            int nuevo = 0;

            //sSql.Append(" ");
            //sSql.Append(" ");
            //sSql.Append(" ");
            //sSql.Append(" ");
            //sSql.Append(" ");
            //sSql.Append(" ");

            //nuevo = conn.EjecutarQuery(sSql.ToString());

            ////this.Errores = conn.Errores;
            return nuevo;
        }
    }
}
